home *** CD-ROM | disk | FTP | other *** search
/ Creative Computers / Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso / shareware / fractals / apfelkiste / apfelkiste2.0 / includes / libraries / iff.h < prev   
C/C++ Source or Header  |  1994-11-17  |  5KB  |  154 lines

  1. #ifndef LIBRARIES_IFF_H
  2. #define LIBRARIES_IFF_H
  3.  
  4. /* C include file for the iff.library V18.4, 28-Feb-90 by Chris Weber.
  5.    Should work for Lattice and Manx. */
  6.  
  7. /* Renamed OpenIFF() and CLoseIFF() to xOpenIFF() and xCloseIFF()
  8.    for KS 2.0 include file kompatibility (23-Oct-91 M. Böhnisch) */
  9.  
  10. #ifndef EXEC_TYPES_H
  11. #include <exec/types.h>
  12. #endif
  13.  
  14. #ifndef IFF_IFFPARSE_H
  15. #include <libraries/iffparse.h>
  16. #endif
  17.  
  18. #define IFFNAME "iff.library"
  19. #define IFFVERSION 18L                /* Current library version */
  20.  
  21. typedef void *IFFFILE;                /* The IFF 'FileHandle' structure */
  22.  
  23.  
  24. /************** FUNCTION DECLARATIONS ***********************************/
  25.  
  26. #ifdef AZTEC_C
  27. #define __ARGS(a) ()
  28. #define NO_PRAGMAS
  29. #else
  30. #define __ARGS(a) a
  31. #endif
  32.  
  33. IFFFILE    xOpenIFF      __ARGS((char *));
  34. void    xCloseIFF     __ARGS((IFFFILE));
  35. void   *FindChunk    __ARGS((IFFFILE,LONG));    /* Was struct Chunk * */
  36. struct BitMapHeader *GetBMHD __ARGS((IFFFILE));
  37. LONG    GetColorTab  __ARGS((IFFFILE,WORD *));
  38. BOOL    DecodePic    __ARGS((IFFFILE,struct BitMap *));
  39. BOOL    SaveBitMap   __ARGS((char *,struct BitMap *,WORD *,LONG));
  40. BOOL    SaveClip     __ARGS((char *,struct BitMap *,WORD *,LONG,LONG,LONG,LONG,LONG));
  41. LONG    IFFError     __ARGS((void));
  42. ULONG   GetViewModes __ARGS((IFFFILE));            /* ULONG since V18.1 */
  43. APTR    NewOpenIFF   __ARGS((char *,LONG));                /* Since V16.1 */
  44. BOOL    ModifyFrame  __ARGS((void *,struct BitMap *));    /* Since V18.1 */
  45.  
  46.  
  47. /************** ERROR-CODES *********************************************/
  48.  
  49. #define IFF_BADTASK -1              /* IFFError() called by wrong task */
  50.  
  51. #define IFF_CANTOPENFILE 16         /* File not found */
  52. #define IFF_READERROR 17            /* Error reading file */
  53. #define IFF_NOMEM 18                /* Not enough memory */
  54. #define IFF_NOTIFF 19               /* File is not an IFF file */
  55. #define IFF_WRITEERROR 20           /* Error writing file */
  56.  
  57. #define IFF_NOILBM 24               /* IFF file is not of type ILBM */
  58. #define IFF_NOBMHD 25               /* BMHD chunk not found */
  59. #define IFF_NOBODY 26               /* BODY chunk not found */
  60. #define IFF_TOOMANYPLANES 27        /* BODY has more planes than BitMap */
  61. #define IFF_UNKNOWNCOMPRESSION 28   /* Unknown compression type */
  62.  
  63. #define IFF_NOANHD 29                /* ANHD chunk not found (since V18.1) */
  64. #define IFF_NODLTA 30                /* DLTA chunk not found (since V18.1) */
  65.  
  66.  
  67. /************** COMMON IFF IDs ******************************************/
  68.  
  69. #define ID_ANIM MAKE_ID('A','N','I','M')
  70. #define ID_ANHD MAKE_ID('A','N','H','D')
  71. #define ID_ILBM MAKE_ID('I','L','B','M')
  72. #define ID_BMHD MAKE_ID('B','M','H','D')
  73. #define ID_BODY MAKE_ID('B','O','D','Y')
  74. #define ID_CAMG MAKE_ID('C','A','M','G')
  75. #define ID_CLUT MAKE_ID('C','L','U','T')
  76. #define ID_CMAP MAKE_ID('C','M','A','P')
  77. #define ID_CRNG MAKE_ID('C','R','N','G')
  78. #define ID_DLTA MAKE_ID('D','L','T','A')
  79. #define ID_SHAM MAKE_ID('S','H','A','M')
  80.  
  81. #define ID_8SVX MAKE_ID('8','S','V','X')
  82. #define ID_ATAK MAKE_ID('A','T','A','K')
  83. #define ID_NAME MAKE_ID('N','A','M','E')
  84. #define ID_RLSE MAKE_ID('R','L','S','E')
  85. #define ID_VHDR MAKE_ID('V','H','D','R')
  86.  
  87. #define FORM ID_FORM    /* Ancient compatibility only, don't use */
  88. #define PROP ID_PROP
  89. #define LIST ID_LIST
  90. #define CAT  ID_CAT
  91.  
  92.  
  93. /************** STRUCTURES **********************************************/
  94.  
  95. struct Chunk            /* Generic IFF chunk structure */
  96. {
  97.     LONG  ckID;
  98.     LONG  ckSize;
  99.     /* UBYTE ckData[1];    should be UBYTE ckData[ckSize] */
  100. };
  101.  
  102. struct BitMapHeader        /* BMHD chunk for ILBM files */
  103. {
  104.     UWORD w,h;
  105.     WORD  x,y;
  106.     UBYTE nPlanes;
  107.     UBYTE masking;
  108.     UBYTE compression;
  109.     UBYTE pad1;
  110.     UWORD transparentColor;
  111.     UBYTE xAspect,yAspect;
  112.     WORD  pageWidth,pageHeight;
  113. };
  114.  
  115. struct AnimHeader        /* ANHD chunk for ANIM files */
  116. {
  117.     UBYTE    Operation;
  118.     UBYTE    Mask;
  119.     UWORD    W;
  120.     UWORD    H;
  121.     WORD    X;
  122.     WORD    Y;
  123.     ULONG    AbsTime;
  124.     ULONG    RelTime;
  125.     UBYTE    Interleave;
  126.     UBYTE    pad0;
  127.     ULONG    Bits;
  128.     UBYTE    pad[16];
  129. };
  130.  
  131.  
  132. /************** PRAGMAS FOR LATTICE C V5.x ******************************/
  133.  
  134. /* Pragmas generated with: 'fd2pragma iff_lib.fd iffpragmas.h' */
  135.  
  136. #ifndef NO_PRAGMAS
  137. extern struct Library *IFFBase;
  138. #pragma libcall IFFBase xOpenIFF 1e 801
  139. #pragma libcall IFFBase xCloseIFF 24 901
  140. #pragma libcall IFFBase FindChunk 2a 902
  141. #pragma libcall IFFBase GetBMHD 30 901
  142. #pragma libcall IFFBase GetColorTab 36 8902
  143. #pragma libcall IFFBase DecodePic 3c 8902
  144. #pragma libcall IFFBase SaveBitMap 42 a9804
  145. /*#pragma libcall IFFBase SaveClip 48 210a9808*/
  146. #pragma libcall IFFBase IFFError 4e 0
  147. #pragma libcall IFFBase GetViewModes 54 901
  148. #pragma libcall IFFBase NewOpenIFF 5a 802
  149. #pragma libcall IFFBase ModifyFrame 60 8902
  150. #endif
  151.  
  152. #endif !LIBRARIES_IFF_H
  153.  
  154.